Implicit Dynamic Frames ( draft )
نویسنده
چکیده
An important, challenging problem in the verification of imperative programs with shared, mutable state is the frame problem in the presence of data abstraction. That is, one must be able to specify and verify upper bounds on the set of memory locations a method can read and write without exposing that method’s implementation. Separation logic is now widely considered the most promising solution to this problem. However, unlike conventional verification approaches, separation logic assertions cannot mention heap-dependent expressions from the host programming language such as method calls familiar to many developers. Moreover, separation logic-based verifiers are often based on symbolic execution. These symbolic execution-based verifiers typically do not support non-separating conjunction, and some of them rely on the developer to explicitly fold and unfold predicate definitions. Furthermore, several researchers have wondered whether it is possible to use verification condition generation and standard first-order provers instead of symbolic execution to automatically verify conformance with a separation logic specification. In this paper, we propose a variant of separation logic, called implicit dynamic frames, that supports heap-dependent expressions inside assertions. Conformance with an implicit dynamic frames specification can be checked by proving validity of a number of first-order verification conditions. To show that these verification conditions can be discharged automatically by standard first-order provers, we have implemented our approach in a verifier prototype and have used this prototype to verify several challenging examples from related work. Our prototype automatically folds and unfolds predicate definitions as required during the proof and can reason about non-separating conjunction which is used in the specifications of some of these examples. Finally, we have proven soundness of the approach.
منابع مشابه
Implicit Dynamic Frames: Combining dynamic frames and separation logic (soundness proof)
The dynamic frames approach has proven to be a powerful formalism for specifying and verifying object-oriented programs. However, it requires writing and checking many frame annotations. In this paper, we propose a variant of the dynamic frames approach that eliminates the need to explicitly write and check frame annotations. In this paper, we improve upon the classical dynamic frames approach ...
متن کاملThe Relationship between Separation Logic and Implicit Dynamic Frames
Separation logic is a concise method for specifying programs that manipulatedynamically allocated storage. Partially inspired by separation logic, Implicit DynamicFrames has recently been proposed, aiming at first-order tool support. In this paper,we precisely connect the semantics of these two logics. We define a logic whose syntaxsubsumes both that of a standard separation log...
متن کاملFrom Explicit to Implicit Dynamic Frames in Concurrent Reasoning for Java
In [9] we presented an approach to permission-based reasoning about concurrent Java programs in the context of the interactive program verifier KeY [1] which is based on Dynamic Logic and explicit dynamic frames [6, 13]. We argued for the explicit approach advocating the modular use (w.r.t. sequential vs. concurrent) and overall preciseness. It was noted, however, that changing our specificatio...
متن کاملInfluence of Sudden Column Loss on Dynamic Response of Steel Moment Frames under Blast Loading
Modeling buildings response to blast and subsequent progressive collapse interested more and more researchers during the past two decades. Due to the threat from extreme loading, efforts have been made to develop methods of structural analysis and design. In this paper, progressive collapse capacity of steel moment frames was first investigated using alternate load path method, then a nonlinear...
متن کاملAn Automatic Encoding from VeriFast Predicates into Implicit Dynamic Frames
VeriFast is a symbolic-execution-based verifier, based on separation logic specifications. Chalice is a verifier based on verification condition generation, which employs specifications in implicit dynamic frames. Recently, theoretical work has shown how the cores of these two verification logics can be formally related. However, the mechanisms for abstraction in the two tools are not obviously...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2011